﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using SGAEntidades;
using SGABDUtil;
using SGAInterfaces;

namespace SGAAccesoDatos
{
    public class TipoServicio : ITipoServicio
    {
        public IList<TipoServicioInfo> Listar(TipoServicioInfo oTipoServicio)
        {
            var sqlParm = new SqlParameter[2];
            var oListaTipoServicio = new List<TipoServicioInfo>();

            sqlParm[0] = new SqlParameter("@Id_Tipo_Servicio", SqlDbType.VarChar);
            if (oTipoServicio.IdTipoServicio != null) { sqlParm[0].Value = oTipoServicio.IdTipoServicio; } else { sqlParm[0].Value = DBNull.Value; }

            sqlParm[1] = new SqlParameter("@Descripcion", SqlDbType.VarChar);
            if (oTipoServicio.Descripcion != null) { sqlParm[1].Value = oTipoServicio.Descripcion; } else { sqlParm[1].Value = DBNull.Value; }

            using (var drd = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringDistributedTransaction, CommandType.StoredProcedure, "SGA_SP_CONSULTAR_TIPO_SERVICIO", sqlParm))
            {
                if (drd != null)
                {
                    if (drd.HasRows)
                    {
                        while (drd.Read())
                        {
                            oListaTipoServicio.Add(new TipoServicioInfo(drd.GetString(0).Trim(), drd.GetString(1).Trim()));
                        }
                    }
                }
            }
            return oListaTipoServicio;
        }

        public TipoServicioInfo Consultar(TipoServicioInfo oTipoServicio)
        {
            var sqlParm = new SqlParameter[2];
            var oEntTipoServicio = new TipoServicioInfo();

            sqlParm[0] = new SqlParameter("@Id_Tipo_Servicio", SqlDbType.VarChar);
            if (oTipoServicio.IdTipoServicio != null) { sqlParm[0].Value = oTipoServicio.IdTipoServicio; } else { sqlParm[0].Value = DBNull.Value; }

            sqlParm[1] = new SqlParameter("@Descripcion", SqlDbType.VarChar);
            if (oTipoServicio.Descripcion != null) { sqlParm[1].Value = oTipoServicio.Descripcion; } else { sqlParm[1].Value = DBNull.Value; }

            using (var drd = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringDistributedTransaction, CommandType.StoredProcedure, "SGA_SP_CONSULTAR_TIPO_SERVICIO", sqlParm))
            {
                if (drd != null)
                {
                    if (drd.HasRows)
                    {
                        drd.Read();
                        oEntTipoServicio= new TipoServicioInfo(drd.GetString(0).Trim(), drd.GetString(1).Trim());

                    }
                }
            }
            return oEntTipoServicio;
        }
    }
}
